upperL = 999 * 999
nums =  [upperL,(upperL - 1)..1]

isPalindrome :: Integer -> Bool
isPalindrome n = show n == (reverse $ show n)

palindromes = filter isPalindrome nums
answers = filter isNiceMultiple palindromes

isNiceMultiple n = isNiceMultiple' n [999,998..1]
isNiceMultiple' n [] = False
isNiceMultiple' n (x:factors)
                | n `rem` x == 0 && length numString < 4 = True
                | otherwise = isNiceMultiple' n factors
                  where numString = show $ n `div` x
